/*
 * RSName.h
 *
 *  Created on: 2010/03/17
 *      Author: alexandre
 */

#ifndef RSNAME_H_
#define RSNAME_H_

#include "RSValueElement.h"

namespace Realsphere {

    class RSName : public Realsphere::RSValueElement {
        Q_OBJECT
        public:
            RSName ( );
            RSName ( const QString& rScopeId );
            RSName ( QString& rValue );
            RSName ( const QString& rScopeId, QString& rValue );

            RSValueType                     ValueType () const;
            RSDataSize                      SizeOf () const;
            RSDataPointer                   DataPointer();
            QString                         ToString () const;

            QString                         Value () const;

        public slots:
            void                            SetValue ( const char* rValue, bool rEmit = true );
            void                            SetValue ( const QString& rValue, bool rEmit = true );
            void                            SetValue ( const RSName& rValue, bool rEmit = true );

        public:
            RSName&                         operator=( const char* rValue );
            RSName&                         operator=( const QString& rValue );
            RSName&                         operator=( const RSName& rValue );

        private:
            QString                         mValue;
    };

}

#endif /* RSNAME_H_ */
